package com.hxrfid.common.config;

import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 读取项目相关配置
 *
 * @author Lion Li
 */

@Data
@Component
@ConfigurationProperties(prefix = "hxrfid")
public class HxrfidConfig {

    /**
     * 项目名称
     */
    private String name;

    /**
     * 版本
     */
    private String version;

    /**
     * 版权年份
     */
    private String copyrightYear;

    /**
     * 实例演示开关
     */
    private boolean demoEnabled;

    /**
     * 缓存懒加载
     */
    private boolean cacheLazy;

    /**
     * 获取地址开关
     */
    @Getter
    private static boolean addressEnabled;

    public void setAddressEnabled(boolean addressEnabled) {
        HxrfidConfig.addressEnabled = addressEnabled;
    }

    /**
     * 租户相关
     */
    private Tenant tenant;


    @Data
    @NoArgsConstructor
    public static class Tenant {
        /**
         * 多租户的字段
         */
        private String column;

        /**
         * 超管账号（超管不进行数据隔离，允许查看所有数据，多个账号可以使用,号隔开）
         */
        private String admin;

        /**
         * 这些表不加租户ID（先判断这个，再判断前缀）
         */
        private List<String> ignoreTables;

        /**
         * 这些前缀的表不加租户ID
         */
        private List<String> prefixs;

        /**
         * #上面开头的这些表除外
         */
        private List<String> prefixsExclude;

    }

}
